package collection;

import java.util.LinkedList;
import java.util.Queue;

/**
 * java.util.Queue 接口队列
 * Queue继承自Collection
 * 队列是经典的数据结构,可以保存一组元素,但是存取元素必须遵循先进先出原则.
 *
 * 常用实现类:java.util.LinkedList
 */
public class QueueDemo {
    public static void main(String[] args) {
        Queue<String> queue=new LinkedList<>();
        //入队操作,将元素添加到队列末尾
        queue.offer("one");
        queue.offer("two");
        queue.offer("three");
        queue.offer("four");
        queue.offer("five");
        queue.offer("six");
        System.out.println(queue);

        //出队操作,获取并删除队首元素
        String str=queue.poll();
        System.out.println(str);
        System.out.println(queue);

        //引用队首元素,获取后不会将其删除
        str=queue.peek();
        System.out.println(str);
        System.out.println(queue);
        /*
        遍历队列
        使用迭代器(新循环)遍历,元素不受影响,还都在队列中
         */
        for (String s : queue) {
            System.out.println(s);
        }
        System.out.println(queue);

       while (queue.size()>0){
           String e=queue.poll();
           System.out.println(e);
       }
        System.out.println(queue);
    }
}
